package com.kfm.pm;

import com.kfm.*;

public class Test {

    public static void main(String[] args) {
        // 实例成员变量和静态成员变量的区别
        // 静态成员属于类  所有对象共享
        // 实例成员属于对象  对象之间私有的
        // 静态成员 通过类名.属性名 / 对象名.属性名  访问
        // 实例成员  只能通过 对象名.属性名 访问
        // 两者的初始化时机不同，静态成员在加载类模板的时候就初始化，实例成员是在创建对象（new）的时候初始化
        // 实例方法中可以使用实例成员和静态成员  静态方法中只能使用静态成员
        // 实例方法中可以调用静态方法和实例方法  静态方法中只能调用静态方法，如果要调用实例方法，需要先创建对象，使用对象调用
        // 实例方法中可以使用 this 关键字，静态方法中不能使用
        Cat cat = new Cat();
        // 缺省访问修饰符 不能在非同包下访问
//        System.out.println(cat.color);
        // public 修饰的方法或者变量   任何类都可以访问
        cat.eat();
        // protected 修饰的方法或变量，不能在其他包下访问
//        System.out.println(cat.name);
//        System.out.println(cat.age);
        // private 修饰的方法或者变量 无法被其他类访问 同类可以访问
//        cat.sleep();
        new Dog();

        Fish fish = new Fish();
        // 没有访问修饰符的类在其他包不能访问
//        Car car = new Car();
    }
}
